home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / ASTRONOM / H256.ZIP / YALESTAR.ZIP / STARVAL.BAS < prev   
BASIC Source File  |  1993-06-01  |  4KB  |  124 lines

  1. 10    REM    STARVAL.BAS    JULY 15.1, 1981
  2. 20    REM
  3. 30    REM            READS SEQUENTIAL RECORDS, CHECKS
  4. 40    REM            THEM (SIMPLE CHECK), AND REPORTS
  5. 50    REM            ALL ERRORS FOUND
  6. 60    REM
  7. 70    REM    OPEN FILE, INITIALIZE CONSTANTS
  8. 80    REM
  9. 90    PRINT TAB(20);"STAR DATABASE VALIDATION"
  10. 100    PRINT
  11. 110    PRINT "This program performs several cursory checks on the various"
  12. 120    PRINT "STARx.DAT data files.  While it can detect some errors, it"
  13. 130    PRINT "is NOT capable of finding ALL POSSIBLE ERRORS in the data"
  14. 140    PRINT "base."
  15. 150    PRINT
  16. 160    PRINT "     HAPPY STAR GAZING"
  17. 170    PRINT
  18. 180    PRINT "FILE NAME   FIRST   LAST   COMMENTS"
  19. 190    PRINT
  20. 200    PRINT "STAR1.BAD       1     50   File with sample errors to demonstrate"
  21. 210    PRINT "                           STARVALs error detection capabilities."
  22. 220    PRINT "STAR1.DAT       1    884   First datafile"
  23. 230    PRINT "STAR2.DAT     885   2059   2ND datafile"
  24. 240    PRINT "STAR3.DAT    2060   3234   3RD datafile"
  25. 250     PRINT "STAR4.DAT    3235   4409   4TH datafile"
  26. 260     PRINT "STAR5.DAT    4410   5584   5TH datafile"
  27. 270     PRINT "STAR6.DAT    5585   6759   6TH datafile
  28. 280    PRINT "STAR7.DAT    6760   7934   7TH datafile"
  29. 290    PRINT "STAR8.DAT    7935   9110   Last datafile"
  30. 300    PRINT
  31. 310    INPUT "File name, first line #, last line #? ",A$,S,F
  32. 320    INPUT "Do you want just the line #s with errors displayed  (Y/N)? ",B$
  33. 330    IF B$="y" THEN B$="Y"
  34. 340    OPEN "I",#1,A$
  35. 350    E=0
  36. 360    E1=0
  37. 370    S$="    "
  38. 380    REM
  39. 390    REM    CHECK EACH STAR
  40. 400    REM
  41. 410    FOR I=S TO F STEP 1
  42. 420    REM
  43. 430    REM    CALCULATE STAR NUMBER IN ASCII
  44. 440    REM
  45. 450    N$=RIGHT$(STR$(I),LEN(STR$(I))-1)
  46. 460    IF LEN(N$)>=4 THEN 510
  47. 470    N$="0"+N$
  48. 480    GOTO 460
  49. 490    REM    INPUT DATA RECORD ON ONE STAR
  50. 500    REM
  51. 510    LINE INPUT #1,C$
  52. 520    REM
  53. 530    REM    CHECK TO SEE THAT REDUNDANT CATALOG NUMBERS ARE EQUAL
  54. 540    REM
  55. 550    IF B$<>"Y" THEN GOSUB 1220
  56. 560    IF LEFT$(C$,4)=MID$(C$,85,4) THEN 630
  57. 570    IF B$="Y" THEN GOSUB 1220
  58. 580    PRINT LEFT$(C$,4);" NOT = ";MID$(C$,85,4);
  59. 590    E=E+1
  60. 600    REM
  61. 610    REM    CHECK TO SEE THAT CATALOG NUMBERS ARE SEQUENTIAL
  62. 620    REM
  63. 630    IF LEFT$(C$,4)=N$ THEN 730
  64. 640    IF B$="Y" THEN GOSUB 1220
  65. 650    PRINT "CAT # OUT OF SEQUENCE ";
  66. 660    E=E+1
  67. 670    REM
  68. 680    REM    CHECK TO SEE THAT THE DECIMAL POINTS ASSOCIATED WITH
  69. 690    REM    THE FIXED POINT DATA IN RADIANS ARE IN THE CORRECT
  70. 700    REM    PLACE.  (THESE FOUR DECIMAL POINTS ARE THE ONLY
  71. 710    REM    "DATA" THAT CAN BE VERIFIED.)
  72. 720    REM
  73. 730    IF MID$(C$,174,1)="." THEN 770
  74. 740    IF B$="Y" THEN GOSUB 1220
  75. 750    PRINT MID$(C$,174,1);" ,174 <> '.'";
  76. 760    E=E+1
  77. 770    IF MID$(C$,182,1)="." THEN 810
  78. 780    IF B$="Y" THEN GOSUB 1220
  79. 790    PRINT MID$(C$,182,1);" ,182 <> '.'";
  80. 800    E=E+1
  81. 810    IF MID$(C$,190,1)="." THEN 850
  82. 820    IF B$="Y" THEN GOSUB 1220
  83. 830    PRINT MID$(C$,190,1);" ,190 <> '.'";
  84. 840    E=E+1
  85. 850    IF MID$(C$,198,1)="." THEN 920
  86. 860    IF B$="Y" THEN GOSUB 1220
  87. 870    PRINT MID$(C$,198,1);" ,198 <> '.'";
  88. 880    E=E+1
  89. 890    REM
  90. 900    REM    CHECK TO SEE THAT LENGTH IS CORRECT
  91. 910    REM
  92. 920    IF LEN(C$)=202 THEN 990
  93. 930    IF B$="Y" THEN GOSUB 1220
  94. 940    PRINT "LEN NOT 202, = ";LEN(C$);
  95. 950    E=E+1
  96. 960    REM
  97. 970    REM    CHECK TO SEE THAT ALL CHARACTERS ARE ASCII
  98. 980    REM
  99. 990    FOR J=1 TO LEN(C$)
  100. 1000    IF MID$(C$,J,1)<" "THEN 1020
  101. 1010    IF MID$(C$,J,1)<"~" THEN 1050
  102. 1020    IF B$="Y" THEN GOSUB 1220
  103. 1030    PRINT "CHAR #";J;" NOT VALID ASCII CHAR"
  104. 1040    E=E+1
  105. 1050    NEXT J
  106. 1060    IF B$<>"Y" THEN PRINT:GOTO 1090
  107. 1070    IF E<>E1 THEN PRINT
  108. 1080    E1=E
  109. 1090    NEXT I
  110. 1100    REM
  111. 1110    REM    PRINT THE GOOD (HOPEFULLY) NEWS
  112. 1120    REM
  113. 1130    PRINT
  114. 1140    PRINT "    Total number of errors DETECTED = ";E
  115. 1150    CLOSE #1
  116. 1160    GOTO 170
  117. 1170    END
  118. 1180    ON ERROR GOTO 1190
  119. 1190    PRINT "UNEXPECTED END OF FILE ENCOUNTERED"
  120. 1200    E=E+1
  121. 1210    GOTO 1130
  122. 1220    PRINT "Line # = ";I;" (";LEFT$(C$,4);") ";
  123. 1230    RETURN
  124.